In multi-process applications which require access to a shared database, a requesting process requiring database access makes a request to a central memory sharing process, such as a database server. The database server retrieves the required data and copies it to an Inter-Process Communication (IPC) mechanism, from where the requesting process can access the data. However, this requires synchronization between the database server and the requesting processes, which leads to delays and time inefficiencies.
One solution would be to have each requesting process cache its own copy of the database. Although memory intensive, this approach may be feasible for small databases. However for large databases, such as on the order of 4 GB as is typical for network management systems, this approach is clearly not realistic.